Systems and methods for controlling aerial vehicles

ABSTRACT

Disclosed are systems, devices, and methods for controlling an aerial vehicle. An exemplary method may include receiving data indicating a location and an altitude of the aerial vehicle, receiving data indicating a destination of the aerial vehicle, receiving prevailing wind pattern data regarding winds at the location and altitude of the aerial vehicle, determining that the aerial vehicle is within a predetermined distance of the destination, determining a speed at which the aerial vehicle is moving, and causing the aerial vehicle to adjust the altitude of the aerial vehicle based on the prevailing wind pattern data and the determined speed.

BACKGROUND Technical Field

The present disclosure relates to controlling flight of aerial vehicles,and, more particularly, to systems and methods for planning flight pathsfor the aerial vehicles and updating such flight paths when new databecomes available.

Description of Related Art

Unmanned aerial vehicles may travel at very high altitudes, including upto approximately 20 kilometers above the Earth's surface in thestratosphere, which is well above the altitudes of airplanes, wildlife,and weather events. In the stratosphere, winds are stratified, and eachlayer of wind may vary in speed and/or direction. The aerial vehiclesmay be moved using such winds, and a direction and/or speed of movementof the aerial vehicles may be controlled based on the winds in thevarious layers of the stratosphere. However, reliance on predictedweather data alone may be undesirable in planning and/or controllingflight paths of the aerial vehicles, because predicted weather data maybe locally inaccurate and/or outdated. Improvements in systems andmethods for course planning and controlling movement of aerial vehiclesare described hereinbelow.

SUMMARY

Provided in accordance with embodiments of the present disclosure aresystems for controlling an aerial vehicle. In an aspect of the presentdisclosure, an exemplary system includes an aerial vehicle and acomputing device including a processor and a memory storing instructionswhich, when executed by the processor, cause the computing device toreceive data indicating a location and an altitude of the aerialvehicle, receive data indicating a destination of the aerial vehicle,receive prevailing wind pattern data regarding winds at the location andaltitude of the aerial vehicle, determine that the aerial vehicle iswithin a predetermined distance of the destination, determine a speed atwhich the aerial vehicle is moving, and cause the aerial vehicle toadjust the altitude of the aerial vehicle based on the prevailing windpattern data and the determined speed.

In another aspect of the present disclosure, the system further includesa position sensor, and the data regarding the location and the altitudeof the aerial vehicle is received from the position sensor.

In yet another aspect of the present disclosure, the system furtherincludes a motion sensor, and the speed at which the aerial vehicle ismoving is determined based on data received from the motion sensor.

In still another aspect of the present disclosure, the aerial vehicle isa balloon.

In yet another aspect of the present disclosure, the prevailing windpattern data is received from an external source.

In still another aspect of the present disclosure, the prevailing windpattern data is received from a sensor included in the aerial vehicle.

In yet another aspect of the present disclosure, the prevailing windpattern data is a based on a combination of data received from anexternal source and from a sensor included in the aerial vehicle.

In still another aspect of the present disclosure, the instructions,when executed by the processor, further cause the computing device todetermine that the speed at which the aerial vehicle is moving isgreater than a first threshold, determine a new altitude for the aerialvehicle, and cause the aerial device to adjust the altitude of theaerial vehicle to the new altitude.

In a further aspect of the present disclosure, the new altitude isdetermined based on a distance between the altitude and the newaltitude.

In another aspect of the present disclosure, the first threshold iscorrelated to a distance between the location of the aerial vehicle andthe destination.

In still another aspect of the present disclosure, the instructions,when executed by the processor, further cause the computing device todetermine a probability that a prevailing wind pattern at the newaltitude will cause the aerial vehicle to move at a lower speed, anddetermine that the probability exceeds a second threshold.

In a further aspect of the present disclosure, the probability is basedon a time since data regarding the prevailing wind pattern at the secondaltitude was last received.

In another aspect of the present disclosure, the probability is based ondata received from an external source.

In yet another aspect of the present disclosure, the instructions, whenexecuted by the processor, further cause the computing device to receiveadditional prevailing wind pattern data regarding winds at the newaltitude of the aerial vehicle, determine that the aerial vehicle is notmoving towards the destination, determine a third altitude for theaerial vehicle, and cause the aerial vehicle to adjust the altitude ofthe aerial vehicle to the third altitude.

In a further aspect of the present disclosure, determining the thirdaltitude for the aerial vehicle includes determining a probability thata prevailing wind pattern at the third altitude will cause the aerialvehicle to move towards the destination, and determining that theprobability exceeds a third threshold.

In another aspect of the present disclosure, the additional prevailingwind pattern data is received from a sensor included in the aerialvehicle.

In yet another aspect of the present disclosure, the prevailing windpattern is based on a speed and a direction of the wind.

In still another aspect of the present disclosure, the instructions,when executed by the processor, further cause the computing device todetermine that the aerial vehicle has reached the destination.

Provided in accordance with embodiments of the present disclosure aremethods for controlling an aerial vehicle. In an aspect of the presentdisclosure, an exemplary method includes receiving data indicating alocation and an altitude of the aerial vehicle, receiving dataindicating a destination of the aerial vehicle, receiving prevailingwind pattern data regarding winds at the location and altitude of theaerial vehicle, determining that the aerial vehicle is within apredetermined distance of the destination, determining a speed at whichthe aerial vehicle is moving, and causing the aerial vehicle to adjustthe altitude of the aerial vehicle based on the prevailing wind patterndata and the determined speed.

Provided in accordance with embodiments of the present disclosure arenon-transitory computer-readable storage media storing a program forcontrolling an aerial vehicle. In an aspect of the present disclosure,an exemplary program includes instructions which, when executed by aprocessor, cause a computing device to receive data indicating alocation and an altitude of the aerial vehicle, receive data indicatinga destination of the aerial vehicle, receive prevailing wind patterndata regarding winds at the location and altitude of the aerial vehicle,determine that the aerial vehicle is within a predetermined distance ofthe destination, determine a speed at which the aerial vehicle ismoving, and cause the aerial vehicle to adjust the altitude of theaerial vehicle based on the prevailing wind pattern data and thedetermined speed.

Any of the above aspects and embodiments of the present disclosure maybe combined without departing from the scope of the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

Various aspects and features of the present disclosure are describedhereinbelow with references to the drawings, wherein:

FIG. 1 is a schematic diagram of an exemplary system that may be usedfor controlling flight paths of aerial vehicles, according to anembodiment of the present disclosure;

FIG. 2 is a simplified block diagram of an exemplary computing deviceforming part of the system of FIG. 1;

FIGS. 3A-3D show a flowchart of an exemplary method for controllingflight paths of aerial vehicles, according to an embodiment of thepresent disclosure; and

FIG. 4 shows an exemplary graphical user interface that may be displayedby the computing device of FIG. 2, according to an embodiment of thepresent disclosure.

DETAILED DESCRIPTION

The present disclosure relates to systems and methods for controllingflight paths of aerial vehicles. More particularly, the presentdisclosure relates to planning a flight path or course of an aerialvehicle based on prevailing wind patterns, and seeking an optimalaltitude for the aerial vehicle to move along a desired heading and/orat a desired speed, based on uncertainty in the prevailing windpatterns. The optimal altitude may be determined based on weather datareceived from external sources, and/or based on observations made bysensors and/or devices included in and/or coupled to the aerial vehicle.Wind vectors may be determined for various headings and altitudes, andthe aerial vehicle may be allowed to move in a desired heading for apredetermined amount of time and/or until new prevailing wind patterndata is received. After a predetermined amount of time, or if it isdetermined that the aerial vehicle is not moving along the desiredheading or otherwise not satisfying an objective, an altitude of theaerial vehicle may be adjusted to analyze prevailing wind patterns atdifferent altitudes in order to determine if prevailing wind patterns ata different altitude will move the aerial vehicle along the desiredvector. An optimal altitude for the aerial vehicle to move along thedesired heading may then again be selected, and the flight path orcourse of the aerial vehicle may be updated based on the prevailing windpattern at the selected altitude.

With reference to FIG. 1, there is shown a schematic diagram of a system100 for controlling an aerial vehicle, according to an embodiment of thepresent disclosure. System 100 may include an aerial vehicle 110, acontroller for the aerial vehicle 120, various sensors 125, and acomputing device 150. Aerial vehicle 110 may be any wind-influencedaerial vehicle such as, for example, a balloon carrying a payload.However, those skilled in the art will recognize that the systems andmethods disclosed herein may similarly apply and be usable by variousother types of aerial vehicles. Thus, aerial vehicle 110 may be anywind-influenced aerial vehicle.

Controller 120 may be a computing device and/or other logic circuitconfigured to control aerial vehicle 110. In an embodiment, controller120 may be coupled to aerial vehicle 110. Controller 120 may include orbe coupled to the various sensors 125. Sensors 125 may include one ormore position sensors such as, for example, Global Positioning System(GPS) sensors, motion sensors such as accelerometers and gyroscopes,altitude sensors such as altimeters, wind speed and/or direction sensorssuch as wind vanes and anemometers, temperature sensors such asthermometers, resistance temperature detectors, and speed of soundtemperature sensors, pressure sensors such as barometers anddifferential pressure sensors, etc. These examples of sensors are notintended to be limiting, and those skilled in the art will appreciatethat sensors 125 may also include other sensors or combinations ofsensors in addition to the examples described above without departingfrom the scope of the present disclosure. In some embodiments, sensors125 are coupled to one or more cables extending out from controller 120,for example, cables hanging below controller 120 such as to obtain dataat an altitude different from aerial vehicle 110. Controller 120 mayfurther include or be coupled to an imaging device, such as adownward-facing camera and/or a star tracker.

Computing device 150 may be a computing device configured to control theoperations of controller 120 and aerial vehicle 110. Computing device150 may be any computing device configurable for use in controllingand/or planning a flight path for aerial vehicle 110 known to thoseskilled in the art. For example, computing device 150 may be a desktopcomputer, laptop computer, tablet computer, smart phone, server andterminal configuration, and/or any other computing device known to thoseskilled in the art. In some embodiments, computing device 150 andcontroller 120 are a single, unified device coupled to aerial vehicle110. In other embodiments, computing device 150 may be coupled to aerialvehicle 110 as a separate device from controller 120. In still furtherembodiments, computing device 150 may be located remote from aerialvehicle 110 and may communicate with and/or control the operations ofcontroller 120 via a network. In one embodiment, computing device 150 isa data center located on the ground, such as at a control facility, andcommunicates with controller 120 via a network. As described furtherbelow, system 100, and particularly computing device 150, may be usedfor planning a flight path or course for aerial vehicle 110 based ondata regarding prevailing wind patterns to move aerial vehicle 110 alonga desired heading. Various configurations of system 100 are envisioned,and various steps and/or functions of the processes described below maybe shared among the various devices of system 100, or may be assigned tospecific devices, i.e. computing device 150 and/or controller 120.

Turning now to FIG. 2, there is shown a simplified box diagram ofcomputing device 150 forming part of system 100 of FIG. 1, according toan embodiment of the present disclosure. Computing device 150 includes amemory 202 storing a database 240 and an application 280. Application280 may include instructions which, when executed by processor 204,cause computing device 150 to perform various steps and/or functions, asdescribed below. Application 280 further includes instructions forgenerating a graphical user interface (GUI) 285. Database 240 may storevarious algorithms and/or data, including data regarding prevailing windpatterns, past and present locations of aerial vehicle 110, and/or windobservations detected at such locations, as further described below.Memory 202 may include any non-transitory computer-readable storagemedium for storing data and/or software that is executable by processor204, and/or any other medium which may be used to store information andwhich may be accessed by processor 204 to control the operation ofcomputing device 150.

Computing device 150 may further include a display 206, a networkinterface 208, an input device 210, and/or an output module 212. Display206 may be any display device by means of which computing device 150 mayoutput and/or display data, such as via GUI 285. Network interface 208may be configured to connect to a network such as a local area network(LAN) including one or more of a wired network, a wireless network, awide area network (WAN), a wireless mobile network, a BLUETOOTH network,a satellite network, and/or the internet. Input device 210 may be amouse, keyboard, or other hand-held controller, touch screen, voiceinterface, and/or any other device or interface by means of which a usermay interact with computing device 150. Output module 212 may be a bus,port, and/or other interface by means of which computing device 150 mayconnect to and/or output data to other devices and/or peripherals.

With reference to FIGS. 3A-3D, there is shown a flowchart of anexemplary method 300 for controlling an aerial vehicle, according to anembodiment of the present disclosure. While the various steps of method300 are described below in an ordered sequence, those skilled in the artwill recognize that some or all of the steps of method 300 may beperformed in a different order or sequence, repeated, and/or omittedwithout departing from the scope of the present disclosure.

Turning now to FIG. 3A, method 300 may start at step S302, wherecomputing device 150 receives data regarding a current location and acurrent altitude of aerial vehicle 110. The data regarding the currentlocation of aerial vehicle 110 may be received from one or more sensors125, such as a GPS sensor. In some embodiments, the data regarding thecurrent location of aerial vehicle may be triangulation data receivedfrom external sensors, such as sensors on the ground or another knownposition. The data regarding the current location of aerial vehicle 110may also be determined or generated based on images, such as satelliteimages and/or other data sources external to aerial vehicle 110, orimages captured by an imaging device coupled to aerial vehicle 110, suchas a downward-facing camera and/or a star tracker. In other embodiments,the data regarding the current location of aerial vehicle 110 may beentered by a user, such as by using input device 210.

Similarly, the data regarding the current altitude of aerial vehicle 110may be received from one or more sensors 125, such as an altimeter, abarometer, and/or a differential pressure sensor etc. In someembodiments, the data regarding the current altitude of aerial vehicle110 may be determined based on a pressure inside a balloon. That is, thealtitude of aerial vehicle 110 may be determined as a distance (e.g. aheight) above sea level or another surface, and/or based on a pressureinside or outside of aerial vehicle 110. In other embodiments, the dataregarding the current altitude of aerial vehicle 110 may be entered by auser, such as by using input device 210.

Thereafter, or concurrently therewith, at step S304, computing device150 receives data regarding an objective of aerial vehicle 110. Forexample, the objective may be a predetermined destination inputted by auser, such as by using input device 210. In embodiments, the destinationmay be a geographic area and/or region (such as a city, state, orcountry, etc.) or a particular geographic point defined in latitude andlongitude. In another example, the objective may an instruction be tofly to and/or via a particular area (e.g. fly across the Atlantic Ocean,fly over the Strait of Gibraltar, or fly around Cape Aghulas). Infurther examples, the objective may be to remain as close as possible toa particular geographic point for a maximum amount of time (e.g.determined based on resources onboard aerial vehicle 110), to minimizespeed of aerial vehicle 110, or maximize the flight time of aerialvehicle 110 while avoiding a particular geographic region. In stillfurther examples, the objective may be an instruction to generally movein a predetermined direction or heading. As will be appreciated by thoseskilled in the art, the objectives described here are merely forexemplary purposes and various other objectives may also be providedwithout departing from the scope of the present disclosure. Inembodiments, computing device 150 may determine a vector from thecurrent location of aerial vehicle 110, received at step S302, to theobjective received at step S304.

Next, at step S306, computing device 150 receives data regardingprevailing wind patterns. The data regarding the prevailing windpatterns may include a prevailing wind vector (i.e. wind direction andwind speed) at one or more altitudes. For example, the data regardingprevailing wind patterns may include a prevailing wind vector at thecurrent location and current altitude of aerial vehicle 110, and/orprevailing wind vectors at various other altitudes corresponding to thecurrent location of aerial vehicle 110. In embodiments, the dataregarding prevailing wind patterns may include global data, that is, thedata regarding prevailing wind patterns may include prevailing windvectors at various locations and/or altitudes around the globe. In someembodiments, the data regarding prevailing wind patterns may be detectedby one or more sensors 125, such as wind vanes and/or anemometers, andtransmitted to computing device 150. Additionally or alternatively, thedata regarding prevailing wind patterns may be received from one or moreexternal data sources, such as a weather observatory or weather service,examples of which include the National Oceanic and AtmosphericAdministration (NOAA) and the European Centre for Medium-Range WeatherForecasts (ECMWF). The data regarding prevailing wind patterns may alsobe received from sensors included in other aerial vehicles, such asaerial vehicles located within a predetermined distance from aerialvehicle 110. In some embodiments, the data regarding prevailing windpatterns may be determined based on a combination of sources, such asexternal sources and/or sensors 125. Prevailing wind pattern data may bereceived continuously or at various intervals during operation of aerialvehicle 110, and as described further below, a heading and/or flightpath of aerial vehicle 110 may be iteratively adjusted and/or updatedbased on new or additional prevailing wind pattern data.

Thereafter, at step S308, computing device 150 determines a plurality ofheadings along which aerial vehicle 110 may be moved from the currentlocation of aerial vehicle 110, received at step S302. The plurality ofheadings may be determined based on the prevailing wind pattern datareceived at step S306, and may include a vector along which aerialvehicle will move at various altitudes. For example, computing device150 may determine, based on prevailing wind vectors at variousaltitudes, a direction and distance that aerial vehicle 110 will move ifaerial vehicle 110 maintains a particular altitude for a predeterminedamount of time. Thus, differences in wind speed and/or direction atvarious altitudes may result in different possible headings from thesame location.

Next, at step S310, computing device 150 determines a time aerialvehicle 110 will take to reach or complete the objective received atstep S304 based on each heading. The determination may be based on theprevailing wind pattern data received at step S306 and the plurality ofheadings determined at step S308. For example, computing device 150 maygenerate and analyze a cartogram of travel times from the currentlocation of aerial vehicle 110 received at step S302 to the objective(such as a destination) received at step S304. As used herein, the term“cartogram” refers to a map of points indicating predicted travel timesfrom the current location of aerial vehicle 110 to the objective basedon current prevailing wind patterns at various altitudes. For example,the travel times may be measured in days, hours, minutes, and/or anyother relevant metric. Based on the analysis of the cartogram, computingdevice 150 may determine a predicted travel time for aerial vehicle 110to reach the objective for each of the plurality of headings determinedat step S308.

Computing device 150 then, at step S312, selects an optimal heading. Forexample, computing device 150 may select the heading that will moveaerial vehicle 110 towards the objective in the lowest amount of time,as determined at step S310. In other examples, computing device 150 mayweigh a speed of aerial vehicle 110, a direction of movement of aerialvehicle 110, and/or a distance to the objective received at step S304when selecting the optimal heading. In some examples, prevailing windpatterns at the current location of aerial vehicle 110 may cause theheading with the shortest travel time to the objective to be a headingthat is not the most direct route.

Computing device 150 may further determine or plan a flight path fromthe current location of aerial vehicle 110 received at step S302 to theobjective received at step S304 based on the prevailing wind patterndata received at step S306, the cartogram generated at step S310, and/orthe heading selected at step S312. The flight path may be a projectedroute that aerial vehicle 110 will travel from the current location tothe objective based on wind speeds and directions along the projectedroute. In embodiments, the flight path is determined based on a fastestroute (as determined based on the prevailing wind patterns) from thecurrent location to the objective. In other embodiments, the flight pathis determined based on a most direct route and/or a vector from thecurrent location to the objective. In still further embodiments, theflight path is determined based on one or more waypoints along auser-defined route. For example, the flight path may include one or moreheadings along which aerial vehicle 110 should move for various portionsof the projected route, and/or one or more altitudes to which thealtitude of aerial vehicle 110 should be adjusted at various pointsalong the projected route. Computing device 150 may then cause a displaydevice, such as display 206, to display a graphical user interface, suchas GUI 285, showing the selected heading and/or the flight path, asshown in FIG. 4 (described below). A user may then review the selectedheading and/or the flight path, and may provide input to computingdevice 150 adjusting and/or accepting the selected heading and/or theflight path.

Next, at step S314, computing device 150 may cause aerial vehicle 110 toadjust its altitude to an altitude corresponding with the headingselected at step S312. In embodiments, computing device 150 may send asignal or data packet to controller 120, the data packet including thealtitude corresponding with the selected heading, whereafter controller120 causes aerial vehicle 110 to adjust its altitude based on the flightpath planned at step S312. In further embodiments, computing device 150may send a signal or data packet to controller 120, the data packetincluding the altitude corresponding with a desired speed, whereaftercontroller 120 causes aerial vehicle 110 to adjust its altitude based ona speed at which aerial vehicle 110 is moving and/or a desired speed atwhich aerial vehicle 110 should move. For example, if the headingselected at step S312 corresponds to an altitude that is lower than thecurrent altitude of aerial vehicle 110 (as received at step S302),computing device 150 causes aerial vehicle 110 to decrease its altitude.Likewise, if the heading selected at step S312 corresponds to analtitude that is higher than the current altitude of aerial vehicle 110(as received at step S302), computing device 150 causes aerial vehicle110 to increase its altitude. In instances where the current altitude ofaerial vehicle 110 (as received at step S302) is the same as an altitudecorresponding to the heading selected at step S312, computing device 150does not cause aerial vehicle 110 to adjust its altitude at step S314.

Thereafter, at step S316, computing device 150 determines whether newprevailing wind pattern data has been received. Computing device 150 mayfurther determine whether a new cartogram has been generated based onnew prevailing wind pattern data. If computing device 150 determinesthat new prevailing wind pattern data has been received, processingreturns to step S308, where computing device 150 again determines aplurality of headings in which aerial vehicle 110 can be moved based onthe new wind pattern data. Alternatively, if computing device 150determines that new prevailing wind pattern data has not been received,processing proceeds to step S318.

At step S318, computing device 150 determines whether aerial vehicle 110is within a predetermined distance of the objective. Depending on thetype of objective, different distances may define a boundary orthreshold around the objective. For example, the boundary may be definedas a distance where a speed of aerial vehicle 110 is weighted evenlywith a direction of movement of aerial vehicle 110 when selecting anoptimal heading for aerial vehicle. That is, when aerial vehicle 110 ismore than the predetermined distance from the objective received at stepS302, computing device 150 weighs a direction of movement of aerialvehicle heavier than a speed of aerial vehicle 110 when selecting anoptimal heading for aerial vehicle. Likewise, when aerial vehicle 110 isless than the predetermined distance from the objective received at stepS302, computing device 150 weighs a speed of aerial vehicle 110 heavierthan a direction of movement of aerial vehicle 110 when selecting anoptimal heading for aerial vehicle 110. The predetermined distance maybe based on input received from a user and/or prevailing wind patterndata. For example, in some embodiments, the predetermined distance maybe based on coordination, such as fleet management, of multiple aerialvehicles 110. If computing device 150 determines that aerial vehicle 110is within the predetermined distance of the objective, processing skipsahead to step S330. Alternatively, if computing device 150 determinesthat aerial vehicle 110 is not within the predetermined distance of theobjective, processing proceeds to step S320.

At step S320, computing device determines whether a predetermined amountof time has elapsed. The predetermined amount of time may be measuredfrom a time since the heading of aerial vehicle 110 was selected, a timesince new prevailing wind pattern data was last received, a time since anew cartogram was last generated, and/or an amount of time since thealtitude of aerial vehicle 110 was last adjusted. For example, thepredetermined amount of time may be an amount of time for whichprevailing wind pattern data is expected to be accurate, and/or anamount of time based on which the plurality of headings was determinedat step S308. If computing device 150 determines that the predeterminedamount of time has elapsed, processing skips ahead to step S350.Alternatively, if computing device 150 determines that the predeterminedamount of time has not elapsed, processing proceeds to step S322.

At step S322, computing device 150 determines whether aerial vehicle 110is moving along the heading selected at step S312. Alternatively, or inaddition, computing device 150 may determine whether aerial vehicle 110is moving along the flight path determined at step S312. For example,computing device 150 may receive and process additional data regardingan updated location of aerial vehicle 110. Computing device 150 may thendetermine, based on the updated location of aerial vehicle 110, whetheraerial vehicle 110 is moving along the heading selected at step S312,the flight path determined at step S312, and/or otherwise satisfying theobjective received at step S304. In embodiments, determining whetheraerial vehicle 110 is moving along the heading selected at step S312and/or the flight path determined at step S312 may include determiningwhether the direction in which aerial vehicle 110 is moving is more thana predetermined amount different from the selected heading and/or theflight path. In further embodiments, determining whether aerial vehicle110 is moving along the heading selected at step S312 and/or the flightpath determined at step S312 may include determining whether thedirection in which aerial vehicle 110 is moving is within a threshold orrange of the heading selected at step S312 and/or the flight pathdetermined at step S312. For example, computing device 150 may determinewhether the direction in which aerial vehicle 110 is moving is within apredetermined number of degrees different from the heading selected atstep S312 and/or the flight path determined at step S312. In stillfurther embodiments, determining whether aerial vehicle 110 issatisfying the objective received at step S304 may include determining adistance between the updated location of aerial vehicle 110 and aparticular point, geographical location, and/or any other relevantmetric that may be used for assessing whether movement of aerial vehicle110 is satisfying the objective. If it is determined that aerial vehicle110 is not moving along the selected heading or the flight path and/ornot otherwise satisfying the objective, processing skips ahead to stepS350. Alternatively, if it is determined that aerial vehicle 110 ismoving along the selected heading or the flight path, processing returnsto step S316, where computing device 150 again determines whether newprevailing wind pattern data has been received.

Turning now to FIG. 3B, at step S330, computing device 150 determineswhether aerial vehicle 110 is moving towards a target point.Alternatively, or in addition, computing device 150 may determinewhether aerial vehicle 110 is moving along the flight path determined atstep S312. For example, the target point may be a particular pointdefined in latitude and longitude within the boundary around theobjective. In embodiments, the target point is a center point aroundwhich the boundary is defined. Computing device 150 may determinewhether aerial vehicle 110 is moving towards the target point based on adirection in which aerial vehicle is moving. For example, computingdevice 150 may determine whether the direction in which aerial vehicleis currently moving intersects with the target point. If computingdevice 150 determines that aerial vehicle is not moving towards thetarget point, processing skips ahead to step S350. Alternatively, ifcomputing device 150 determines that aerial vehicle 110 is movingtowards the target point, processing proceeds to step S332.

At step S332, computing device 150 determines a speed at which aerialvehicle 110 is moving. The speed may be determined based on one or moresensors 125, such as accelerometers and/or based on prevailing windpattern data. Thereafter, at step S334, computing device 150 determineswhether the speed at which aerial vehicle 110 is moving is greater thana threshold. For example, the threshold may be calculated based onand/or correlated to a distance between aerial vehicle 110 and thetarget point. That is, as the distance between aerial vehicle 110 andthe target point becomes smaller, the threshold is lowered. If computingdevice 150 determines that the speed at which aerial vehicle 110 ismoving is greater than the threshold, processing skips ahead to stepS370. Alternatively, if computing device 150 determines that the speedat which aerial vehicle 110 is moving is not greater than the threshold,processing proceeds to step S336.

At step S336, computing device 150 determines whether aerial vehicle 110has reached the target point. For example, computing device 150 maydetermine, based on data regarding an updated location of aerial vehicle110 received from one or more sensors 125, that aerial vehicle 110 hasreached the target point. If computing device 150 determines that aerialvehicle 110 has not reached the target point, processing returns to stepS330. Alternatively, computing device 150 determines that aerial vehicle110 has reached the target point, processing ends.

Turning now to FIG. 3C, at step S350, computing device 150 determines anew altitude for aerial vehicle 110. For example, computing device 150may receive and process additional data regarding prevailing windpatterns at other altitudes at the current location of aerial vehicle110 to determine a new altitude for aerial vehicle 110. Additionally oralternatively, the determination may be based on one or more models ofwind vectors at various altitudes. The determination may further bebased on a distance between the current altitude of aerial vehicle 110and the new altitude. For example, altitudes that are closer to thecurrent altitude of aerial vehicle 110 may be favored over altitudesthat are a greater distance from the current altitude of aerial vehicle110. In embodiments, determining a new altitude for aerial vehicle 110may take into account energy usage required to adjust the altitude ofaerial vehicle 110. For example, adjusting the altitude of aerialvehicle 110 to a higher altitude uses more energy than adjusting to alower altitude, and thus potentially favorable lower altitudes may bepreferred over higher altitudes. Additionally, large adjustments inaltitude may be disfavored over smaller adjustments where possible, suchas to conserve energy and/or limit mechanical wear and tear.

Thereafter, at step S352, computing device 150 determines a probabilitythat a prevailing wind pattern at the new altitude will move aerialvehicle 110 toward the objective received at step S304, and/or towardthe target point. In embodiments, computing device 150 may determine theprobability based on whether the prevailing wind pattern at the newaltitude will move aerial vehicle 110 in a direction that is less thanthe predetermined amount different from the flight path determined atstep S312. For example, computing device 150 may further process theadditional prevailing wind pattern data received at step S350 todetermine the probability. For example, computing device 150 may comparedata received from sensors 125 to data received from external sources todetermine local accuracy of the data received from external sources, andthereby determine the probability that the prevailing wind pattern atthe new altitude will move aerial vehicle 110 toward the objective.Additionally or alternatively, the determination may be based on one ormore models of wind vectors at various altitudes. The probability mayfurther be based on a time since the data regarding the prevailing windpattern at the new altitude was last received. For example, a greatertime since the data regarding the prevailing wind pattern at the newaltitude was last received may indicate a greater chance that theprevailing wind pattern may have changed, and thus may result in ahigher probability. Alternatively, a shorter time since the dataregarding the prevailing wind pattern at the new altitude was lastreceived may indicate a lower chance that the prevailing wind patternhas changed, and may result in a lower probability. The probability mayalso be based on a distance between the new altitude and the currentaltitude of aerial vehicle 110 and/or an altitude for which prevailingwind pattern data is available.

Thereafter, at step S354, computing device 150 determines whether theprobability is greater than a threshold. If computing device 150determines that the probability is not greater than the threshold,processing returns to step S350 where another new altitude isdetermined. Alternatively, if computing device 150 determines that theprobability is greater than the threshold, processing proceeds to stepS356.

At step S356, the altitude of aerial vehicle 110 is adjusted to the newaltitude determined at step S350. For example, computing device 150 maycause controller 120 to change the altitude of aerial vehicle 110 to thenew altitude. If the new altitude is higher than the current altitude ofaerial vehicle 110, the altitude of aerial vehicle 110 may be increased.Alternatively, if the new altitude is lower than the current altitude ofaerial vehicle 110, the altitude of aerial vehicle 110 may be decreased.

Thereafter, at step S358, computing device 150 receives additionalprevailing wind pattern data at the new altitude of aerial vehicle 110.For example, the additional prevailing wind pattern data may becollected by and/or received from one or more sensors 125. Then, at stepS360, computing device 150 determines whether aerial vehicle 110 iswithin the predetermined distance or boundary of the objective, asdetermined at step S318 (described above). If computing device 150determines that aerial vehicle 110 is within the predetermined distanceof the objective, processing returns to step S330. Alternatively, ifcomputing device 150 determines that aerial vehicle 110 is not withinthe predetermined distance of the objective, processing returns to stepS316.

Turning now to FIG. 3D, at step S370, computing device 150 determines anew altitude for aerial vehicle 110. For example, computing device 150may receive and process additional data regarding prevailing windpatterns at other altitudes at the current location of aerial vehicle110 to determine a new altitude for aerial vehicle 110. Additionally oralternatively, the determination may be based on one or more models ofwind vectors at various altitudes. The determination may further bebased on a distance between the current altitude of aerial vehicle 110and the new altitude. For example, altitudes that are closer to thecurrent altitude of aerial vehicle 110 may be favored over altitudesthat are a greater distance from the current altitude of aerial vehicle110.

Thereafter, at step S372, computing device 150 determines a probabilitythat a prevailing wind pattern at the new altitude will move aerialvehicle 110 at a slower speed. For example, computing device 150 mayfurther process the additional prevailing wind pattern data received atstep S350 to determine the probability. Additionally or alternatively,the determination may be based on one or more models of wind vectors atvarious altitudes. The probability may further be based on a time sincethe data regarding the prevailing wind pattern at the new altitude waslast received. For example, a greater time since the data regarding theprevailing wind pattern at the new altitude was last received mayindicate a greater chance that the prevailing wind pattern may havechanged, and thus may result in a higher probability. Alternatively, ashorter time since the data regarding the prevailing wind pattern at thenew altitude was last received may indicate a lower chance that theprevailing wind pattern has changed, and may result in a lowerprobability.

Thereafter, at step S374, computing device 150 determines whether theprobability is greater than a threshold. If computing device 150determines that the probability is not greater than the threshold,processing returns to step S370 where another new altitude isdetermined. Alternatively, if computing device 150 determines that theprobability is greater than the threshold, processing proceeds to stepS376.

At step S376, the altitude of aerial vehicle 110 is adjusted to the newaltitude determined at step S370. For example, computing device 150 maycause controller 120 to change the altitude of aerial vehicle 110 to thenew altitude. If the new altitude is higher than the current altitude ofaerial vehicle 110, the altitude of aerial vehicle 110 may be increased.Alternatively, if the new altitude is lower than the current altitude ofaerial vehicle 110, the altitude of aerial vehicle 110 may be decreased.

Thereafter, at step S378, computing device 150 receives additionalprevailing wind pattern data at the new altitude of aerial vehicle 110.For example, the additional prevailing wind pattern data may becollected by and/or received from one or more sensors 125. Processingthen returns to step S330.

With reference to FIG. 4, there is shown an exemplary graphical userinterface (GUI) 400 that may be displayed by computing device 150, suchas via display 206, according to an embodiment of the presentdisclosure. GUI 400 may include a map showing an indication of a currentlocation 410 of aerial vehicle 110. GUI 400 may further show anindication of the heading 420 of aerial vehicle 110, corresponding tothe heading selected at step S312. An indication of a path previouslytravelled 430 by aerial vehicle 110 and an indication of the plannedflight path 440 may also be shown. Additionally, a cone 450 indicatingan acceptable range of movement may also be shown. Cone 450 may becentered on heading 420, and may show a range of directions in whichaerial vehicle may move based on the heading selected at step S312. Asdescribed above, a user may review the heading 420 and/or planned flightpath 440, and may adjust the heading 420 and/or flight path 440, forexample, by adjusting a width and/or direction of cone 450.

Detailed embodiments of devices, systems incorporating such devices, andmethods using the same as described herein. However, these detailedembodiments are merely examples of the disclosure, which may be embodiedin various forms. Therefore, specific structural and functional detailsdisclosed herein are not to be interpreted as limiting, but merely as abasis for the claims and as a representative basis for allowing oneskilled in the art to variously employ the present disclosure inappropriately detailed structure.

What is claimed is:
 1. A system for controlling an aerial vehicle, thesystem comprising: the aerial vehicle; and a computing device including:a processor; and a non-transitory memory storing instructions which,when executed by the processor, cause the computing device to: receivedata indicating a location and a first altitude of the aerial vehicle;receive data indicating a destination of the aerial vehicle; receiveprevailing wind pattern data regarding winds at the location and thefirst altitude of the aerial vehicle; determine when the aerial vehicleis within a predetermined distance of the destination; when it isdetermined that the aerial vehicle is within predetermined distance ofthe destination, determine a first speed at which the aerial vehicle ismoving; determine whether the first speed at which the aerial vehicle ismoving is greater than a first threshold; when it is determined that thefirst speed at which the aerial vehicle is moving is greater than thefirst threshold, determine a second altitude for the aerial vehicle tomove at a second speed slower than the first speed; determine aprobability that a prevailing wind pattern at the second altitude willcause the aerial vehicle to move at the second speed, wherein theprobability is based on a time since data regarding the prevailing windpattern at the second altitude was last received; and when it isdetermined that the probability exceeds a second threshold, cause theaerial vehicle to adjust altitude of the aerial vehicle from the firstaltitude to the second altitude.
 2. The system according to claim 1,further comprising: a position sensor, wherein the data regarding thelocation and the first altitude of the aerial vehicle is received fromthe position sensor.
 3. The system according to claim 1, furthercomprising: a motion sensor, wherein the first speed at which the aerialvehicle is moving is determined based on data received from the motionsensor.
 4. The system according to claim 1, wherein the aerial vehicleis a balloon.
 5. The system according to claim 1, wherein the prevailingwind pattern data is received from an external source.
 6. The systemaccording to claim 1, wherein the prevailing wind pattern data isreceived from a sensor included in the aerial vehicle.
 7. The systemaccording to claim 1, wherein the prevailing wind pattern data isa-based on a combination of data received from an external source andfrom a sensor included in the aerial vehicle.
 8. The system according toclaim 1, wherein the second altitude is determined based on a distancebetween the first altitude and the second altitude.
 9. The systemaccording to claim 1, wherein the first threshold is correlated to adistance between the location of the aerial vehicle and the destination.10. The system according to claim 1, wherein the probability is based ondata received from an external source.
 11. The system according to claim1, wherein the instructions, when executed by the processor, furthercause the computing device to: receive additional prevailing windpattern data regarding winds at the second altitude; determine whetherthe aerial vehicle is not moving towards the destination while at thesecond altitude; when it is determined that the aerial vehicle is notmoving towards the destination at the second altitude, determine a thirdaltitude for the aerial vehicle; and cause the aerial vehicle to adjustfrom the second altitude to the third altitude.
 12. The system accordingto claim 11, wherein determining the third altitude for the aerialvehicle includes: determining a probability that a prevailing windpattern at the third altitude will cause the aerial vehicle to movetowards the destination; and determining whether the probability exceedsa third threshold.
 13. The system according to claim 11, wherein theadditional prevailing wind pattern data is received from a sensorincluded in the aerial vehicle.
 14. The system according to claim 1,wherein the prevailing wind pattern data is based on a speed and adirection of the wind.
 15. The system according to claim 1, wherein theinstructions, when executed by the processor, further cause thecomputing device to determine whether the aerial vehicle has reached thedestination.
 16. The system according to claim 1, wherein: when the timesince data regarding the prevailing wind pattern is a first time, theprobability is a first probability indicating a first chance that theprevailing wind pattern has changed; and when the time since dataregarding the prevailing wind pattern is a second time shorter than thefirst time, the probability is a second probability indicating a secondchance that the prevailing wind pattern has changed, the second chancebeing less than the first chance.
 17. A method for controlling an aerialvehicle, the method comprising: receiving data indicating a location anda first altitude of the aerial vehicle; receiving data indicating adestination of the aerial vehicle; receiving prevailing wind patterndata regarding winds at the location and the first altitude of theaerial vehicle; determining when the aerial vehicle is within apredetermined distance of the destination; when it is determined thatthe aerial vehicle is within the predetermined distance of thedestination, determining a first speed at which the aerial vehicle ismoving; determining whether the first speed at which the aerial vehicleis moving is greater than a first threshold; when it is determined thatthe first speed at which the aerial vehicle is moving is greater thanthe first threshold, determining a second altitude for the aerialvehicle to move at a second speed slower than the first speed;determining a probability that a prevailing wind pattern at the secondaltitude will cause the aerial vehicle to move at the second speed,wherein the probability is based on a time since data regarding theprevailing wind pattern at the second altitude was last received; andwhen it is determined that the probability exceeds a second threshold,causing the aerial vehicle to adjust altitude of the aerial vehicle fromthe first altitude to the second altitude.
 18. The method of claim 17,wherein: when the time since data regarding the prevailing wind patternis a first time, the probability is a first probability indicating afirst chance that the prevailing wind pattern has changed; and when thetime since data regarding the prevailing wind pattern is a second timeshorter than the first time, the probability is a second probabilityindicating a second chance that the prevailing wind pattern has changed,the second chance being less than the first chance.
 19. A non-transitorycomputer-readable storage medium storing a program for controlling anaerial vehicle, the program including instructions which, when executedby a processor, cause a computing device to: receive data indicating alocation and a first altitude of the aerial vehicle; receive dataindicating a destination of the aerial vehicle; receive prevailing windpattern data regarding winds at the location and the first altitude ofthe aerial vehicle; determine when the aerial vehicle is within apredetermined distance of the destination; when it is determined thatthe aerial vehicle is within the predetermined distance of thedestination, determine a first speed at which the aerial vehicle ismoving; determine whether the first speed at which the aerial vehicle ismoving is greater than a first threshold; when it is determined that thefirst speed at which the aerial vehicle is moving is greater than thefirst threshold, determine a second altitude for the aerial vehicle tomove at a second speed slower than the first speed; determine aprobability that a prevailing wind pattern at the second altitude willcause the aerial vehicle to move at the second speed, wherein theprobability is based on a time since data regarding the prevailing windpattern at the second altitude was last received; and when it isdetermined that the probability exceeds a second threshold, cause theaerial vehicle to adjust altitude of the aerial vehicle from the firstaltitude to a different altitude based on the prevailing wind patterndata and the determined first speed.
 20. The non-transitorycomputer-readable storage medium of claim 19, wherein: when the timesince data regarding the prevailing wind pattern is a first time, theprobability is a first probability indicating a first chance that theprevailing wind pattern has changed; and when the time since dataregarding the prevailing wind pattern is a second time shorter than thefirst time, the probability is a second probability indicating a secondchance that the prevailing wind pattern has changed, the second chancebeing less than the first chance.